package com.mvc.utils;

/**
 * 身体活动信息提示
 * @author Roy
 */
public class PhysicalActivityHint {
	
	private static final String LACK_PA_WEIGHT_LOW = "根据您提供的信息，目前您的身体活动整体水平不足，结合您的体重评估报告，您的体重过低，建议您进入体重管理。如果您同时患有其它疾病，请在医生指导下进行身体活动。";
	private static final String LACK_PA_WEIGHT_NORMAL = "根据您提供的信息，目前您的身体活动整体水平不足，虽然您的体重正常，但长此以往，您将有发展为超重和肥胖的危险，为了维持您的正常体重，建议您进入体重管理。如果您同时患有其它疾病，请在医生指导下进行身体活动。";
	private static final String LACK_PA_FAT = "根据您提供的信息，目前您的身体活动整体水平不足，结合您的体重评估报告，提示您的超重／肥胖可能与身体活动整体水平不足有关。建议您进入体重管理。如果您同时患有其它疾病，请在医生指导下进行身体活动。";
	private static final String LOW_PA_WEIGHT_MEDIUM = "根据您提供的信息，目前您的身体活动整体水平中等，但您的体重过低，建议您进入体重管理。如果您同时患有其它疾病，请在医生指导下进行身体活动。";
	private static final String MEDIUM_PA_NORMAL = "根据您提供的信息，目前您的身体活动整体水平中等，体重正常，建议您继续保持目前的活动状态。如果您同时患有其它疾病，请在医生指导下进行身体活动。";
	private static final String MEDIUM_PA_FAT = "根据您提供的信息，目前您的身体活动整体水平中等，但您已超重／肥胖，为了使您的体重恢复正常，建议您进入体重管理。如果您同时患有其它疾病，请在医生指导下进行身体活动。";
	private static final String PLENITUDE_PA_LOW = "根据您提供的信息，目前您的身体活动整体水平充分，但您的体重过低，建议您进入体重管理。如果您同时患有其它疾病，请在医生指导下进行身体活动。";
	private static final String PLENITUDE_PA_NORMAL = "根据您提供的信息，目前您的身体活动整体水平充分，体重正常，建议您继续保持目前的活动状态。如果您同时患有其它疾病，请在医生指导下进行身体活动。";
	private static final String PLENITUDE_PA_FAT = "根据您提供的信息，目前您的身体活动整体水平充分，结合您的体重评估报告，您仍属于超重／肥胖，为了使您的体重恢复正常，建议您进入体重管理。如果您同时患有其它疾病，请在医生指导下进行身体活动。";
	
	private PhysicalActivityHint(){}
	
	/**
	 * 身体活动信息提示
	 * @param bmi 体重指数
	 * @param act 身体活动水平
	 * @return 身体活动提示
	 */
	public static String getShenTiHuoDongHintold(double bmi, int act) {
		if (act == 3) {
			if (bmi < 18.5) {
				return LACK_PA_WEIGHT_LOW;
			}else if (bmi >= 18.5 && bmi <= 23.9) {
				return LACK_PA_WEIGHT_NORMAL;
			}else if (bmi >= 24.0 && bmi <= 27.9 || bmi >= 28.0) {
				return LACK_PA_FAT;
			}
		}else if (act == 2) {
			if (bmi < 18.5) {
				return LOW_PA_WEIGHT_MEDIUM;
			}else if (bmi >= 18.5 && bmi <= 23.9) {
				return MEDIUM_PA_NORMAL;
			}else if (bmi >= 24.0 && bmi <= 27.9 || bmi >= 28.0) {
				return MEDIUM_PA_FAT;
			}
		}else if (act == 1) {
			if (bmi < 18.5) {
				return PLENITUDE_PA_LOW;
			}else if (bmi >= 18.5 && bmi <= 23.9) {
				return PLENITUDE_PA_NORMAL;
			}else if (bmi >= 24.0 && bmi <= 27.9 || bmi >= 28.0) {
				return PLENITUDE_PA_FAT;
			}
		}
		return null;
	}
	

	private static final String A1B1 = "根据您提供的信息，目前您的身体活动整体水平不足。";
	private static final String A2B1 = "根据您提供的信息，目前您的身体活动整体水平中等。";
	private static final String A3B1 = "根据您提供的信息，目前您的身体活动整体水平充分。";

	private static final String A1B2 = "根据您提供的信息，目前您的身体活动整体水平不足，虽然您的体重正常，您将有发展为超重和肥胖的危险，为了维持您的正常体重，建议您增加身体活动。如果您同时患有其它疾病，请在医生指导下进行身体活动。";
	private static final String A2B2 = "根据您提供的信息，目前您的身体活动整体水平中等，体重正常，建议您适当提高目前的活动水平，争取达到充分水平。如果您同时患有其它疾病，请在医生指导下进行身体活动。";
	private static final String A3B2 = "根据您提供的信息，目前您的身体活动整体水平充分，体重正常，建议您继续保持目前的活动状态。如果您同时患有其它疾病，请在医生指导下进行身体活动。";
	
	private static final String A1B3 = "根据您提供的信息，目前您的身体活动整体水平不足，结合您的体重评估报告，提示您的超重／肥胖可能与身体活动整体水平不足有关，建议您增加身体活动。如果您同时患有其它疾病，请在医生指导下进行身体活动。";
	private static final String A2B3 = "根据您提供的信息，目前您的身体活动整体水平中等，并且您已超重／肥胖，建议您适当提高目前的活动水平，争取达到充分水平，并参加我们的体重管理。如果您同时患有其它疾病，请在医生指导下进行身体活动。";
	private static final String A3B3 = "根据您提供的信息，目前您的身体活动整体水平充分，结合您的体重评估报告，您仍属于超重／肥胖，为了使您的体重恢复正常，建议您进入体重管理。如果您同时患有其它疾病，请在医生指导下进行身体活动。";

	/**
	 * 身体活动信息提示
	 * @param bmi 体重指数
	 * @param act 身体活动水平 1、充分 2、中等 3、不足
	 * @return 身体活动提示
	 */
	public static String getShenTiHuoDongHint(double bmi, int act) {
		if (bmi < 18.5) {
			switch(act){
			case 1: return A3B1;
			case 2: return A2B1;
			case 3: return A1B1;
			}
		}
		if (18.5 <= bmi && bmi < 24) {
			switch(act){
			case 1: return A3B2;
			case 2: return A2B2;
			case 3: return A1B2;
			}
		}

		if (bmi >= 24) {
			switch(act){
			case 1: return A3B3;
			case 2: return A2B3;
			case 3: return A1B3;
			}
		}

		return "";
	}
	/**
	 * 身体活动信息提示
	 * @param bmi 体重指数
	 * @param act 身体活动水平 1、充分 2、中等 3、不足
	 * @param wl 腰围
	 * @return 身体活动提示
	 */
	public static String getShenTiHuoDongHint(double bmi, int act, double wl ,String gender) {
		boolean isYw = false;//是否腰围超标
		double yw = DataConstants.WL_MALE_DANGER1 ;
		if ("女".equals(gender)) {
			yw = DataConstants.WL_FEMALE_DANGER1 ;
		}
		if (wl < yw) {
			isYw = true ;
		}
		int level = 0;
		if (bmi < 18.5) {
			level = 1; //体重偏低
		}else if ((18.5 <= bmi && bmi < 24) && isYw) {
			level = 2; //体重正常
		}else{
			level = 3; //体重超标
		}
		if (act == 1) {
			switch(level){
			case 1: return A3B1;
			case 2: return A3B2;
			case 3: return A3B3;
			}
		}
		if (act == 2) {
			switch(level){
			case 1: return A2B1;
			case 2: return A2B2;
			case 3: return A2B3;
			}
		}
		if (act == 3) {
			switch(level){
			case 1: return A1B1;
			case 2: return A1B2;
			case 3: return A1B3;
			}
		}

		return "";
	}
}
